OpenRoads Designer CONNECT Edition SDK Help

List all annotation groups

The below code returns list of all annotation groups used in current DGN file.


//Required References
using System.Collections.Generic;
using Bentley.CifNET.ContentManagementModel;
public List<Bentley.CifNET.ContentManagementModel.AnnotationGroup> ListAnnotationGroups()
        {
            List<Bentley.CifNET.ContentManagementModel.AnnotationGroup> listAnnotationGroups = new List<Bentley.CifNET.ContentManagementModel.AnnotationGroup>();

            //Get object space
            Bentley.CifNET.CadSystem.IObjectSpaceManager objectSpaceManager = Bentley.CifNET.ServiceManager.Instance.GetService<Bentley.CifNET.CadSystem.IObjectSpaceManager>();
            if (objectSpaceManager == null) return null;
            Bentley.CifNET.Objects.IObjectSpace objectSpace = objectSpaceManager.ObjectSpace;
            if (objectSpace == null) return null;

            //Get ContentManagementModel
            Bentley.CifNET.ContentManagementModel.ContentManagementModel cmm = Bentley.CifNET.ContentManagementModel.ContentManagementModel.GetContentManagementModel(objectSpace, Bentley.CifNET.Model.GetModelOptions.CheckIfExist);
            if (cmm == null) return null;

            //Get all annotation groups used in current DGN
            AnnotationGroupNameSet annotationGroupNameSet = cmm.AnnotationGroupNameSet;
            foreach (Bentley.CifNET.ContentManagementModel.AnnotationGroup annotationGroup in annotationGroupNameSet)
            {
                listAnnotationGroups.Add(annotationGroup);
            }

            return listAnnotationGroups;
        }